<script lang="ts" setup>
import useStore from '@/store';
import HomePanel from './HomePanel.vue';
import { useLazyData } from '@/utils/hooks';
const { home }  = useStore()

const target = useLazyData(() => {
  home.getNewList()
})

// const target = ref(null)
// // 当整个区块处于可见状态时，才发ajax
// onMounted(() => {
//   const { stop } = useIntersectionObserver(target.value, ([{ isIntersecting }]) => {
//     console.log('新鲜好物', isIntersecting)
//     // 可见
//     if(isIntersecting) {
//       // 发请求
//       home.getNewList()

//       // 停止监听
//       stop()
//     }
//   })
// })
</script>

<style scoped lang="less">

  // fade-enter-active: 从无到有(不可见->可见) 
  // fade-leave-active: 从有有无(可见->不可见) 
  .fade-enter-active, .fade-leave-active{
    transition: all 2s;
  }

  // 从无到有. 它是动画的起点。
  //           终点是fade-enter-to设置的值
  //           但是这个类没有设置，所以终点是默认值
  .fade-enter-from{
    opacity: 0;
  }

 // 从有到无. 它是动画的终点。
  //           起点是fade-leave-from设置的值
  //           但是这个类没有设置，所以起点是默认值
  .fade-leave-to {
    opacity: 0;
  }
</style>
<template>
<div ref="target">
  <HomePanel title="新鲜好物"  subTitle="新鲜出炉 品质靠谱">
    <Transition name="fade">
      <!-- 面板内容 -->
      <ul class="goods-list" v-if="home.newGoodList.length > 0">
        <li v-for="item in home.newGoodList" :key="item.id">
          <RouterLink :to="'/product/'+item.id">
            <img
              v-lazy="item.picture"
              alt=""
            />
            <p class="name ellipsis">{{item.name}}</p>
            <p class="price">&yen;{{item.price}}</p>
          </RouterLink>
        </li>
      </ul>
      <div class="home-skeleton" v-else>
        <div
            class="item"
            v-for="i in 4"
            :key="i"
            :style="{ backgroundColor: '#f0f9f4' }"
          >
            <XtxSkeleton bg="#e4e4e4" :width="306" :height="306" animated fade />
            <XtxSkeleton bg="#e4e4e4" :width="160" :height="24" animated fade />
            <XtxSkeleton bg="#e4e4e4" :width="120" :height="24" animated fade />
          </div>
      </div>
    </Transition>
    <template #right>
      <XtxMore path="/"></XtxMore>
    </template>
  </HomePanel>
</div>
</template>


<style scoped lang="less">

.home-skeleton {
  width: 1240px;
  height: 406px;
  display: flex;
  justify-content: space-between;
  .item {
    width: 306px;
    .xtx-skeleton ~ .xtx-skeleton {
      display: block;
      margin: 16px auto 0;
    }
  }
}
</style>

<style scoped lang="less">
.goods-list {
  display: flex;
  justify-content: space-between;
  height: 406px;
  li {
    width: 306px;
    height: 406px;
    background: #f0f9f4;
    .hoverShadow();
    img {
      width: 306px;
      height: 306px;
    }
    p {
      font-size: 22px;
      padding: 12px 30px 0 30px;
      text-align: center;
    }
    .price {
      color: @priceColor;
    }
  }
}
</style>
